home *** CD-ROM | disk | FTP | other *** search
Modula Implementation | 1997-10-26 | 5.9 KB | 290 lines |
- (*----------------------------------------------------------------------*
- * *
- * MAGIC Modula's All purpose GEM Interface Cadre *
- * ÿ ÿ ÿ ÿ ÿ *
- *----------------------------------------------------------------------*
- * Version 3.30 02.02.1992 (C)90/91/92 by Peter Hellinger Software *
- *----------------------------------------------------------------------*
- * Dieses Modul ist urheberrechtlich geschtzt. *
- * *
- * Die Verffentlichung des Quelltextes oder Teilen daraus in schrift- *
- * licher Form, insbesondere in Zeitschriften, sowie die Verbreitung *
- * ber Public-Domain-Hndler bedarf der ausdrcklichen schriftlichen *
- * Genehmigung des Autors! *
- * *
- * Der Autor gibt hiermit die ausdrckliche Erlaubnis, das Modul jeder- *
- * zeit auch im Quelltext weiterzugegeben, sofern dessen Text und ins- *
- * besondere dieser Urheberrechts-Vermerk nicht verndert wird, und *
- * durch die Weitergabe kein finanzieller Nutzen entsteht. Der Autor *
- * behlt sich das Recht vor, diese Erlaubnis jederzeit u. ohne Angaben *
- * von Grnden zu widerrufen. *
- *----------------------------------------------------------------------*)
-
- IMPLEMENTATION MODULE MagicBIOS;
-
- (*----------------------------------------------------------------------*
- * Int. Vers | Datum | Name | nderung *
- *-----------+----------+------+----------------------------------------*
- * 3.00 | 18.01.92 | Hp | *
- *-----------+----------+------+----------------------------------------*)
-
-
-
- (* IMPLEMENTATION FR >>> Megamax-Modula-2 <<< *)
- (* *)
- (*$R- Range-Checks *)
- (*$S- Stack-Check *)
- (* *)
- (*----------------------------------------------*)
-
-
-
-
-
-
- FROM MagicSys IMPORT Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
- Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
- Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
- sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET,
- CastToChar, CastToByte, CastToByteset, CastToInt,
- CastToCard, CastToBitset, CastToWord, CastToLInt,
- CastToLCard, CastToLBitset, CastToLWord, CastToAddr,
- TosVersion, Accessory, Basepage, SysHeader, TosDate;
-
-
-
-
-
-
- IMPORT MagicSys;
- IMPORT SYSTEM;
-
-
- CONST TRAP13 = 04E4DH;
- AddSP = 0DFFCH;
- D0 = 0;
-
-
-
-
- VAR long, result: lCARDINAL;
-
-
- VAR lc: lCARDINAL;
- li: lINTEGER;
- lb: lBITSET;
- i: sINTEGER;
- c: sCARDINAL;
- b: sBITSET;
- a: SYSTEM.ADDRESS;
- x: sCARDINAL;
-
-
- PROCEDURE Getmpb (VAR mpb: SYSTEM.ADDRESS);
- BEGIN
-
- SYSTEM.ASSEMBLER
- MOVE.L mpb(A6), -(SP)
- MOVE #0, -(SP)
- TRAP #13
- ADDQ.L #6, SP
- END;
-
-
-
-
- END Getmpb;
-
- PROCEDURE Bconstat (device: sINTEGER): BOOLEAN;
- BEGIN
-
- SYSTEM.ASSEMBLER
- MOVE.W device(A6), -(SP)
- MOVE #1, -(SP)
- TRAP #13
- ADDQ.L #4, SP
- MOVE.W D0, c
- END;
- RETURN c # 0;
-
-
-
-
- END Bconstat;
-
- PROCEDURE Bconin (device: sINTEGER): lCARDINAL;
- BEGIN
-
- SYSTEM.ASSEMBLER
- MOVE.W device(A6), -(SP)
- MOVE #2, -(SP)
- TRAP #13
- ADDQ.L #4, SP
- MOVE.W D0, lc
- END;
- RETURN lc;
-
-
-
-
- END Bconin;
-
- PROCEDURE Bconout (device: sINTEGER; c: CHAR);
- BEGIN
-
- x:= ORD (c);
- SYSTEM.ASSEMBLER
- MOVE.W x, -(SP)
- MOVE.W device(A6), -(SP)
- MOVE #3, -(SP)
- TRAP #13
- ADDQ.L #6, SP
- END;
-
-
-
-
- END Bconout;
-
- PROCEDURE Rwabs (rw: sINTEGER; buf: SYSTEM.ADDRESS; count, recno, dev: sINTEGER): lINTEGER;
- BEGIN
-
- SYSTEM.ASSEMBLER
- MOVE.W dev(A6), -(SP)
- MOVE.W recno(A6), -(SP)
- MOVE.W count(A6), -(SP)
- MOVE.L buf(A6), -(SP)
- MOVE.W rw(A6), -(SP)
- MOVE #4, -(SP)
- TRAP #13
- LEA $E(SP), SP
- MOVE.L D0, li
- END;
- RETURN li;
-
-
-
-
- END Rwabs;
-
- PROCEDURE Setexc (vecnum: sINTEGER; vec: SYSTEM.ADDRESS): SYSTEM.ADDRESS;
- BEGIN
-
- SYSTEM.ASSEMBLER
- MOVE.L vec(A6), -(SP)
- MOVE.W vecnum(A6), -(SP);
- MOVE #5, -(SP)
- TRAP #13
- ADDQ.L #8, SP
- MOVE.L D0, a
- END;
- RETURN a;
-
-
-
-
- END Setexc;
-
- PROCEDURE Tickcal(): lCARDINAL;
- BEGIN
-
- SYSTEM.ASSEMBLER
- MOVE #6, -(SP)
- TRAP #13
- ADDQ.L #2, SP
- MOVE.L D0, lc
- END;
- RETURN lc;
-
-
-
-
- END Tickcal;
-
- PROCEDURE Getbpb (drive: sINTEGER): SYSTEM.ADDRESS;
- BEGIN
-
- SYSTEM.ASSEMBLER
- MOVE.W drive(A6), -(SP)
- MOVE #7, -(SP)
- TRAP #13
- ADDQ.L #4, SP
- MOVE.L D0, a
- END;
- RETURN a;
-
-
-
-
- END Getbpb;
-
- PROCEDURE Bcostat (device: sINTEGER): BOOLEAN;
- BEGIN
-
- SYSTEM.ASSEMBLER
- MOVE.W device(A6), -(SP)
- MOVE #8, -(SP)
- TRAP #13
- ADDQ.L #4, SP
- MOVE.W D0, c
- END;
- RETURN c # 0;
-
-
-
-
- END Bcostat;
-
- PROCEDURE Mediach (dev: sINTEGER): sINTEGER;
- BEGIN
-
- SYSTEM.ASSEMBLER
- MOVE.W dev(A6), -(SP)
- MOVE #9, -(SP)
- TRAP #13
- ADDQ.L #4, SP
- MOVE.W D0, i
- END;
- RETURN i;
-
-
-
-
- END Mediach;
-
- PROCEDURE Drvmap (): lBITSET;
- BEGIN
-
- SYSTEM.ASSEMBLER
- MOVE #10, -(SP)
- TRAP #13
- ADDQ.L #2, SP
- MOVE.L D0, lb
- END;
- RETURN lb;
-
-
-
-
- END Drvmap;
-
- PROCEDURE Kbshift (keys: sBITSET): sBITSET;
- BEGIN
-
- SYSTEM.ASSEMBLER
- MOVE.W keys(A6), -(SP);
- MOVE #11, -(SP)
- TRAP #13
- ADDQ.L #4, SP
- MOVE.W D0, b
- END;
- RETURN b;
-
-
-
-
- END Kbshift;
-
- END MagicBIOS.
-
-